emacs.git
10 years agoRework the mechanisms for async GnuTLS connections
Lars Ingebrigtsen [Sun, 31 Jan 2016 01:32:21 +0000 (02:32 +0100)]
Rework the mechanisms for async GnuTLS connections

* lisp/net/gnutls.el (open-gnutls-stream): Compute the
gnutls-boot parameters and pass them to the process object.
(gnutls-negotiate): New parameter :return-keywords that won't
connect to anything, just compute the keywords.

* lisp/url/url-http.el (url-http): Revert async TLS sentinel
hack, which is no longer necessary.

* src/gnutls.c (Fgnutls_asynchronous_parameters): Rename from
gnutls-mark-process.

* src/process.c (connect_network_socket): If we're connecting to
an asynchronous TLS socket, complete the GnuTLS boot sequence here.

* src/process.h: New parameter gnutls_async_parameters.

10 years agoFix segfault from double free
Lars Ingebrigtsen [Sun, 31 Jan 2016 01:00:12 +0000 (02:00 +0100)]
Fix segfault from double free

* process.c (check_for_dns): Protect against double free
issues.

10 years agoRemove debugging
Lars Ingebrigtsen [Sun, 31 Jan 2016 00:41:33 +0000 (01:41 +0100)]
Remove debugging

10 years agoImplement asynchronous GnuTLS connections
Lars Ingebrigtsen [Sun, 31 Jan 2016 00:34:45 +0000 (01:34 +0100)]
Implement asynchronous GnuTLS connections

* doc/misc/emacs-gnutls.texi (Help For Developers): Mention
the nowait parameter.

* lisp/net/gnutls.el (open-gnutls-stream): Allow asynchronous
connections with the new nowait parameter.

* lisp/net/network-stream.el (network-stream-open-tls): Pass
on :nowait to open-gnutls-stream.

* lisp/url/url-http.el (url-http): Don't overwrite the
sentinel created by open-gnutls-stream.

* src/gnutls.c (Fgnutls_mark_process): New function.

* src/process.c (send_process): Don't write to GnuTLS sockets that
haven't been initialised yed.

* src/process.h: New slot gnutls_wait_p.

10 years agoClean up compilation warnings
Lars Ingebrigtsen [Sat, 30 Jan 2016 08:09:02 +0000 (09:09 +0100)]
Clean up compilation warnings

10 years agoMake async resolution more efficient
Lars Ingebrigtsen [Sat, 30 Jan 2016 08:07:24 +0000 (09:07 +0100)]
Make async resolution more efficient

* process.c (wait_reading_process_output): Use a list of
process objects instead of looping through an array to check
for name resolution.  This should be much faster.

10 years agoMore async memory leaks
Lars Ingebrigtsen [Sat, 30 Jan 2016 04:31:21 +0000 (05:31 +0100)]
More async memory leaks

* src/process.c (check_for_dns): Free even more allocated async stuff.

10 years agoCompilation for for systems with getaddrinfo_a
Lars Ingebrigtsen [Sat, 30 Jan 2016 03:43:10 +0000 (04:43 +0100)]
Compilation for for systems with getaddrinfo_a

* process.c (Fmake_network_process): Make stuff work again on
systems with getaddrinfo_a.

10 years agoSave correct server data
Lars Ingebrigtsen [Sat, 30 Jan 2016 03:34:48 +0000 (04:34 +0100)]
Save correct server data

* process.c (connect_network_socket): Save the correct contact
info for servers.

10 years agoCompilation for for non-GNU systems
Lars Ingebrigtsen [Sat, 30 Jan 2016 02:57:54 +0000 (03:57 +0100)]
Compilation for for non-GNU systems

* process.c (Fmake_network_process): Make compilation work
again on hosts that don't have getaddrinfo_a.

10 years agoAvoid memory leaks in async DNS
Lars Ingebrigtsen [Sat, 30 Jan 2016 02:51:04 +0000 (03:51 +0100)]
Avoid memory leaks in async DNS

* process.c (check_for_dns): Free async DNS resources after
they've been used.

10 years ago* process.c (check_for_dns): Free the result data.
Lars Ingebrigtsen [Sat, 30 Jan 2016 01:39:52 +0000 (02:39 +0100)]
* process.c (check_for_dns): Free the result data.

10 years agoFix server connections
Lars Ingebrigtsen [Sat, 30 Jan 2016 01:25:08 +0000 (02:25 +0100)]
Fix server connections

* process.c (Fmake_network_process): Make creating server
listening ports work again.

10 years agoFurther make_network_process clean up
Lars Ingebrigtsen [Sat, 30 Jan 2016 00:33:30 +0000 (01:33 +0100)]
Further make_network_process clean up

* process.c (Fmake_network_process): Remove setting of unused
family variable.

10 years agoClean up GETADDRINFO usage in make-network-process
Lars Ingebrigtsen [Sat, 30 Jan 2016 00:28:34 +0000 (01:28 +0100)]
Clean up GETADDRINFO usage in make-network-process

* process.c (Fmake_network_process): Clean up the GETADDRINFO
handling.

10 years agoImplement asynchronous name resolution
Lars Ingebrigtsen [Fri, 29 Jan 2016 23:49:18 +0000 (00:49 +0100)]
Implement asynchronous name resolution

* process.c (Fmake_network_process): Do asynchronous DNS
lookups if we have getaddrinfo_a and the user requests :nowait.
(check_for_dns): New function.
(wait_reading_process_output): Check for pending name
resolution in the idle loop.

* process.h: Add structure for async DNS.

10 years agoFix memory leak
Lars Ingebrigtsen [Thu, 28 Jan 2016 23:36:11 +0000 (00:36 +0100)]
Fix memory leak

* process.c (connect_network_socket): Free previous sockaddr
before allocating a new one.

10 years agoReturn IP addresses in the correct order
Lars Ingebrigtsen [Thu, 28 Jan 2016 23:25:07 +0000 (00:25 +0100)]
Return IP addresses in the correct order

* src/process.c (Fmake_network_process): Return the IP addresses
in the same order as getaddrinfo does.
(set_network_socket_coding_system): Clean up the code slightly.

10 years agoAdd checks for getaddrinfo_a
Lars Ingebrigtsen [Thu, 28 Jan 2016 22:51:55 +0000 (23:51 +0100)]
Add checks for getaddrinfo_a

* configure.ac: Detect getaddrinfo_a.

10 years agoRefactor make_network_process
Lars Ingebrigtsen [Thu, 28 Jan 2016 22:50:47 +0000 (23:50 +0100)]
Refactor make_network_process

* src/process.c (set_network_socket_coding_system)
(connect_network_socket): Refactor out of
make_network_process to allow calling connect_network_socket
asynchronously.
(Fmake_network_process): Do nothing but parsing the parameters
and name resolution, leaving the connection to
connect_network_socket.

10 years ago; Auto-commit of ChangeLog files.
Glenn Morris [Sun, 24 Jan 2016 11:23:36 +0000 (06:23 -0500)]
; Auto-commit of ChangeLog files.

10 years agoImprove user name completion in Tramp
Michael Albinus [Sat, 23 Jan 2016 15:20:21 +0000 (16:20 +0100)]
Improve user name completion in Tramp

* lisp/net/tramp.el (tramp-parse-passwd, tramp-parse-etc-group):
Call also "getent passwd" or "getent group", if possible.
(tramp-parse-putty): Cache the result.

10 years ago* etc/NEWS: Move kqueue entries to Emacs 25.1 sections.
Michael Albinus [Fri, 22 Jan 2016 19:00:44 +0000 (20:00 +0100)]
* etc/NEWS: Move kqueue entries to Emacs 25.1 sections.

10 years agoRemove handling of non-string time-stamp formats, obsolete for 20 years.
Glenn Morris [Thu, 21 Jan 2016 01:11:16 +0000 (20:11 -0500)]
Remove handling of non-string time-stamp formats, obsolete for 20 years.

* lisp/time-stamp.el (time-stamp-format): Doc fix.
(time-stamp-old-format-warn, time-stamp-fconcat): Remove.
(time-stamp-string): Ignore non-string formats.

; * etc/NEWS: Mention this.

10 years agoAnoter fix for problematic merge from emacs-25
Eli Zaretskii [Wed, 20 Jan 2016 17:34:27 +0000 (19:34 +0200)]
Anoter fix for problematic merge from emacs-25

* src/w32fns.c (globals_of_w32fns): Move initialization of
resetstkoflw to a non-Cygwin part.

10 years agoMerge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Michael Albinus [Wed, 20 Jan 2016 10:03:36 +0000 (11:03 +0100)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs

10 years ago* test/Makefile.in (mostlyclean): Use ${LOGFILES}.
Michael Albinus [Wed, 20 Jan 2016 10:03:15 +0000 (11:03 +0100)]
* test/Makefile.in (mostlyclean): Use ${LOGFILES}.

10 years agoFix MS-Windows build broken by a botched merge from emacs-25
Eli Zaretskii [Wed, 20 Jan 2016 09:47:19 +0000 (11:47 +0200)]
Fix MS-Windows build broken by a botched merge from emacs-25

* src/w32.c (w32_crypto_hprov): New static variable.
(globals_of_w32): Initialize w32_crypto_hprov.
(w32_init_crypt_random, w32_init_random): New functions.
Include wincrypt.h.
* src/w32.h (w32_init_random): Add prototype.

10 years agoMerge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Vincent Belaïche [Wed, 20 Jan 2016 07:30:51 +0000 (08:30 +0100)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs

10 years agoCorrect a whole bunch of bugs coming with renamed cell relocation.
Vincent Belaïche [Wed, 20 Jan 2016 07:28:06 +0000 (08:28 +0100)]
Correct a whole bunch of bugs coming with renamed cell relocation.

* lisp/ses.el (ses-localvars): rename variable
`ses--renamed-cell-symb-list' into `ses--in-killing-named-cell-list'
and adjust the comment about it.
(ses-plist-delq): new defun.
(ses--ses-buffer-list): new defvar.
(ses--unbind-cell-name): new defun.
(ses-relocate-symbol): Do not relocate symbol when it is a named cell.
(ses-relocate-formula): Undo change of
2011-12-27T19:30:39Z!vincentb1@users.sourceforge.net that was
preventing relocation for named cell --- now doing this is delegated
to function `ses-relocate-symbol'.
(ses-relocate-range): In docstring, undo change of
2016-01-03T07:31:52Z!johnw@newartisans.com, `ses-range' must remain
lower case as it is not a variable.
(ses-relocate-all): Cell name relocation : 1) check that cell is a
renamed cell by testing `ses-cell' property to :ses-named, rather than
comparing name to corresponding standard name. Set rowcol of renamed
cell into the hashmap --- `ses-cell' property must not be used for
that as the same name can be used for different locations in different
SES sheets ; 2) use `local-variable-if-set-p' rather than `boundp' and
`local-variable-p' to check if cell name is already in use in this
sheet or needs initialisation.
(ses-relocate-all): Cell value relocation : 1) like for name
relocation use the `ses-cell' property rather than comparing actual
name to corresponding standard name. 2) Correct bug introduced in
2011-12-27T19:30:39Z!vincentb1@users.sourceforge.net, as the test was
made the other way round than the intention --- ie value relocation
was disabled for standard cell, not for renamed cell as was the
intention.
(ses-relocate-all): Add loop for unbinding deleted renamed cells
names.
(ses-killbuffer-hook): new defun.
(ses-mode): Add the ses--ses-buffer-list maintenance mechanism ---
kill buffer hook, plus pushing current buffer if new in list.
(ses-delete-row, ses-delete-column): Collect deleted renamed cells
into `ses--in-killing-named-cell-list'.
(ses-rename-cell): Remove update of variable
`ses--renamed-cell-symb-list', this variable is renamed to
`ses--in-killing-named-cell-list', and its setting is done in
functions `ses-delete-row' and , `ses-delete-column' now.
(ses-rename-cell): Change correction of
2015-12-30T23:10:37Z!vincentb1@users.sourceforge.net concerning
computation of the range over which `cursor-intangible' property was
to be updated. This correction was ok for non spilling cells, but not
for cells spilling over following blank cells. Simply use
`next-single-property-change' rather than computing the end column
from column widths.

10 years ago-
John Wiegley [Tue, 19 Jan 2016 06:59:51 +0000 (22:59 -0800)]
-

10 years ago; Merge from origin/emacs-25
John Wiegley [Tue, 19 Jan 2016 06:56:34 +0000 (22:56 -0800)]
; Merge from origin/emacs-25

The following commit was skipped:

6e79b63 ; Auto-commit of loaddefs files.

10 years agoMerge from origin/emacs-25
John Wiegley [Tue, 19 Jan 2016 06:56:34 +0000 (22:56 -0800)]
Merge from origin/emacs-25

3ae7934 ; * etc/NEWS: Mark entries that don't need further treatment.
6165c36 * lisp/files.el (dir-locals--all-files): Respect absolute file-names
2ffdf15 * lisp/help-fns.el (describe-variable): Fix a left-over parenthesis
71ecd62 * lisp/dired-x.el (dired-omit-here-always): Use add-dir-local-variable
f0b82b3 * lisp/files.el (dir-locals--all-files): Use completion instead of wildcards
86e4513 Fix incompatbilities with MS-Windows 2000 and older
4e96521 Mention in PROBLEMS an issue with MS-Windows NT4
15c23aa Ensure 8-byte aligned memory allocation on MS-Windows 9X
39afa42 Fix tests for active region in hideif.el
05df666 Fix interactive specs in some hideif.el commands

10 years ago; Merge from origin/emacs-25
John Wiegley [Tue, 19 Jan 2016 06:56:33 +0000 (22:56 -0800)]
; Merge from origin/emacs-25

The following commit was skipped:

bb0cd31 Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25

10 years ago-
John Wiegley [Tue, 19 Jan 2016 06:56:33 +0000 (22:56 -0800)]
-

10 years agoAvoid stdio in SIGINT handler
Paul Eggert [Sun, 3 Jan 2016 23:00:49 +0000 (15:00 -0800)]
Avoid stdio in SIGINT handler

* admin/merge-gnulib (GNULIB_MODULES): Add ignore-value.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* lib/ignore-value.h: New file, from gnulib.
* src/keyboard.c: Include it.
(write_stdout, read_stdin): New functions.
(handle_interrupt): Use them instead of printf and getchar,
and avoid fflush when handling signals.

10 years agoRefactor mml-smime.el, mml1991.el, mml2015.el
Jens Lechtenboerger [Sun, 3 Jan 2016 01:10:34 +0000 (01:10 +0000)]
Refactor mml-smime.el, mml1991.el, mml2015.el

(Maybe this is the last merge from Gnus git to Emacs git)

Cf. discussion on ding mailing list, messages in
<http://thread.gmane.org/gmane.emacs.gnus.general/86228>.
Common code from the three files mml-smime.el, mml1991.el, and
mml2015.el is moved to mml-sec.el.  Auxiliary functions are added
to gnus-util.el.

The code is supported by test cases with necessary test keys.

Documentation in message.texi is updated.

* doc/misc/message.texi (Security, Using S/MIME):
Update for refactoring mml-smime.el, mml1991.el, mml2015.el.
(Using OpenPGP): Rename from "Using PGP/MIME"; update contents.
(Passphrase caching, Encrypt-to-self, Bcc Warning): New sections.

* lisp/gnus/gnus-util.el (gnus-test-list, gnus-subsetp, gnus-setdiff):
New functions.

* lisp/gnus/mml-sec.el: Require gnus-util and epg.
(epa--select-keys): Autoload.
(mml-signencrypt-style-alist, mml-secure-cache-passphrase): Doc fix.
(mml-secure-openpgp-signers): New user option;
make mml1991-signers and mml2015-signers obsolete aliases to it.
(mml-secure-smime-signers): New user option;
make mml-smime-signers an obsolete alias to it.
(mml-secure-openpgp-encrypt-to-self): New user option;
make mml1991-encrypt-to-self and mml2015-encrypt-to-self obsolete
aliases to it.
(mml-secure-smime-encrypt-to-self): New user option;
make mml-smime-encrypt-to-self an obsolete alias to it.
(mml-secure-openpgp-sign-with-sender): New user option;
make mml2015-sign-with-sender an obsolete alias to it.
(mml-secure-smime-sign-with-sender): New user option;
make mml-smime-sign-with-sender an obsolete alias to it.
(mml-secure-openpgp-always-trust): New user option;
make mml2015-always-trust an obsolete alias to it.
(mml-secure-fail-when-key-problem, mml-secure-key-preferences):
New user options.
(mml-secure-cust-usage-lookup, mml-secure-cust-fpr-lookup)
(mml-secure-cust-record-keys, mml-secure-cust-remove-keys)
(mml-secure-add-secret-key-id, mml-secure-clear-secret-key-id-list)
(mml-secure-cache-passphrase-p, mml-secure-cache-expiry-interval)
(mml-secure-passphrase-callback, mml-secure-check-user-id)
(mml-secure-secret-key-exists-p, mml-secure-check-sub-key)
(mml-secure-find-usable-keys, mml-secure-select-preferred-keys)
(mml-secure-fingerprint, mml-secure-filter-keys)
(mml-secure-normalize-cust-name, mml-secure-select-keys)
(mml-secure-select-keys-1, mml-secure-signer-names, mml-secure-signers)
(mml-secure-self-recipients, mml-secure-recipients)
(mml-secure-epg-encrypt, mml-secure-epg-sign): New functions.

* lisp/gnus/mml-smime.el: Require epg;
refactor declaration and autoloading of epg functions.
(mml-smime-use): Doc fix.
(mml-smime-cache-passphrase, mml-smime-passphrase-cache-expiry):
Obsolete.
(mml-smime-get-dns-cert, mml-smime-get-ldap-cert):
Use format instead of gnus-format-message.
(mml-smime-epg-secret-key-id-list): Remove variable.
(mml-smime-epg-passphrase-callback, mml-smime-epg-find-usable-key)
(mml-smime-epg-find-usable-secret-key): Remove functions.
(mml-smime-epg-sign, mml-smime-epg-encrypt): Refactor.

* lisp/gnus/mml1991.el (mml1991-cache-passphrase)
(mml1991-passphrase-cache-expiry): Obsolete.
(mml1991-epg-secret-key-id-list): Remove variable.
(mml1991-epg-passphrase-callback, mml1991-epg-find-usable-key)
(mml1991-epg-find-usable-secret-key): Remove functions.
(mml1991-epg-sign, mml1991-epg-encrypt): Refactor.

* lisp/gnus/mml2015.el (mml2015-cache-passphrase)
(mml2015-passphrase-cache-expiry): Obsolete.
(mml2015-epg-secret-key-id-list): Remove variable.
(mml2015-epg-passphrase-callback, mml2015-epg-check-user-id)
(mml2015-epg-check-sub-key, mml2015-epg-find-usable-key)
(mml2015-epg-find-usable-secret-key): Remove functions.
(mml2015-epg-decrypt, mml2015-epg-clear-decrypt, mml2015-epg-sign)
(mml2015-epg-encrypt): Refactor.

10 years agoMerge from gnulib
Paul Eggert [Fri, 1 Jan 2016 09:12:52 +0000 (01:12 -0800)]
Merge from gnulib

This mostly just updates copyright dates of gnulib files.
It also updates to the latest version of texinfo.tex.

10 years agoMove variables to inner loop, preparing for Mac port merge
YAMAMOTO Mitsuharu [Thu, 31 Dec 2015 02:28:16 +0000 (11:28 +0900)]
Move variables to inner loop, preparing for Mac port merge

* src/keyboard.c (command_loop_1): Move variables `cmd',
`keybuf', and `i' to inner loop.

10 years agoMinor improvements to (random t) documentation
Paul Eggert [Tue, 19 Jan 2016 05:31:09 +0000 (21:31 -0800)]
Minor improvements to (random t) documentation

* doc/lispref/numbers.texi (Random Numbers):
* src/fns.c (Frandom):
Omit unnecessary details about randomness fallback.
Say that it is a fallback.

10 years ago; Fix a typo
Dmitry Gutov [Tue, 19 Jan 2016 05:05:23 +0000 (08:05 +0300)]
; Fix a typo

10 years agoRename methods in Ruby etags example file
Dmitry Gutov [Tue, 19 Jan 2016 05:03:41 +0000 (08:03 +0300)]
Rename methods in Ruby etags example file

* test/etags/ruby-src/test.rb: Rename the example methods to
correspond to the common terminology used in Ruby.
* test/etags/CTAGS.good:
* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/ETAGS.good_6: Adjust accordingly.

10 years agoPropertize backtick in 'def `(abc)' as symbol constituent
Dmitry Gutov [Tue, 19 Jan 2016 04:58:46 +0000 (07:58 +0300)]
Propertize backtick in 'def `(abc)' as symbol constituent

* lisp/progmodes/ruby-mode.el (ruby-syntax-propertize):
Propertize backtick in 'def `(abc)' as symbol constituent.
(ruby-syntax-propertize-function):
Rename to ruby-syntax-propertize.

10 years agoFix scrolling under scroll-preserve-screen-position on TTY
Eli Zaretskii [Mon, 18 Jan 2016 19:53:34 +0000 (21:53 +0200)]
Fix scrolling under scroll-preserve-screen-position on TTY

* src/window.c (window_scroll_line_based): When setting point to
preserve screen coordinates, don't let cursor enter either of the
two scroll margins.  (Bug#22395)

10 years agoFix shr table rendering of nested tables
Lars Magne Ingebrigtsen [Mon, 18 Jan 2016 19:37:44 +0000 (20:37 +0100)]
Fix shr table rendering of nested tables

* shr.el (shr-table-body): Don't include all tbodies in nested
tables in the levels above.

10 years ago* lisp/progmodes/project.el (project--read-regexp): Quote the identifier.
Dmitry Gutov [Mon, 18 Jan 2016 19:12:44 +0000 (22:12 +0300)]
* lisp/progmodes/project.el (project--read-regexp): Quote the identifier.

10 years agoAdd xref-based replacements for Dired search commands
Dmitry Gutov [Mon, 18 Jan 2016 19:11:46 +0000 (22:11 +0300)]
Add xref-based replacements for Dired search commands

* lisp/dired-aux.el (dired-do-find-regexp)
(dired-do-find-regexp-and-replace): New commands.
http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00864.html

* lisp/dired.el (dired-mode-map): Change bindings for `A' and
`Q' to the new commands.

* lisp/progmodes/xref.el (xref-query-replace)
(xref-collect-matches): Add progress reporters.
(xref--find-ignores-arguments): Return nil for zero ignores.
(xref--show-xrefs): Add an optional argument.
(xref-collect-matches): Drop the assert.  'find' accepts a
regular file in place of directory argument, too.

10 years ago* doc/lispref/frames.texi (Position Parameters): Say they don't exist on TTYs.
Alan Mackenzie [Mon, 18 Jan 2016 18:51:45 +0000 (18:51 +0000)]
* doc/lispref/frames.texi (Position Parameters): Say they don't exist on TTYs.

10 years agoImprove user documentation of Xref
Eli Zaretskii [Mon, 18 Jan 2016 17:28:49 +0000 (19:28 +0200)]
Improve user documentation of Xref

* doc/emacs/maintaining.texi (Xref, Find Identifiers)
(Looking Up Identifiers, Identifier Search, List Identifiers):
Adjudicate comments by Dmitry Gutov <dgutov@yandex.ru>.  See
http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00650.html
for the details.

10 years agoFix scrolling under scroll-preserve-screen-position and margins
Eli Zaretskii [Mon, 18 Jan 2016 16:19:50 +0000 (18:19 +0200)]
Fix scrolling under scroll-preserve-screen-position and margins

* src/window.c (window_scroll_pixel_based): When setting point to
preserve screen coordinates, don't let cursor enter either of the
two scroll margins.  Fix incorrect usage of
WINDOW_WANTS_HEADER_LINE_P and use WINDOW_HEADER_LINE_HEIGHT
instead of CURRENT_HEADER_LINE_HEIGHT.  (Bug#22395)

10 years agoUnbreak the MS-Windows build
Eli Zaretskii [Mon, 18 Jan 2016 15:42:57 +0000 (17:42 +0200)]
Unbreak the MS-Windows build

* src/sysdep.c (emacs_gnutls_global_init, gnutls_rnd): Disable for
WINDOWSNT, to avoid link failure.  (Bug#22202)

10 years agoDesktop: protect users against inadvertant upgrading of desktop file.
Alan Mackenzie [Mon, 18 Jan 2016 13:32:22 +0000 (13:32 +0000)]
Desktop: protect users against inadvertant upgrading of desktop file.

An upgraded (version 208) desktop file cannot be read in Emacs < 25.

* etc/NEWS: Add an entry about upgrading a desktop file.

* lisp/desktop.el (desktop-file-version): Amend doc string.
(desktop-native-file-version, desktop-io-file-version): new variables.
(desktop-clear): Set desktop-io-file-version to nil.
(desktop-buffer-info): make the presence of the last item on the list
conditional on (>= desktop-io-file-version 208).
(desktop-save): Add extra parameter VERSION to take user's C-u or C-u C-u.
Amend the doc string.  Add code to determine the output file version.
(desktop-create-buffer): Set desktop-io-file-version to the input file's
version.

10 years agoInitialize GnuTLS before calling gnutls_rnd
Paul Eggert [Mon, 18 Jan 2016 01:16:12 +0000 (17:16 -0800)]
Initialize GnuTLS before calling gnutls_rnd

* src/gnutls.c (emacs_gnutls_global_init): Now extern.
Don’t set gnutls_global_initialized if gnutls_global_init fails.
* src/sysdep.c: Include "gnutls.h", and <gnutls/crypto.h>
if 2.12 or later, which has gnutls_rnd.
(emacs_gnutls_global_init, gnutls_rnd): New fallback
placeholder macros if before 2.12.
(init_random): Initialize gnutls globals before trying to
use gnutls_rnd.

10 years agoDon't use GnuTLS before it is initialized
Andreas Schwab [Sun, 17 Jan 2016 23:18:12 +0000 (00:18 +0100)]
Don't use GnuTLS before it is initialized

* src/sysdep.c (init_random): Don't use gnutls_rnd.

10 years ago* mh-e.el (mh-version): Add +git to version.
Bill Wohler [Sun, 17 Jan 2016 22:37:39 +0000 (14:37 -0800)]
* mh-e.el (mh-version): Add +git to version.

10 years agoPort cleanup attribute to OpenBSD
Paul Eggert [Sun, 17 Jan 2016 22:10:26 +0000 (14:10 -0800)]
Port cleanup attribute to OpenBSD

The OpenBSD C compiler issues false alarms about strcpy, strcat, and
sprintf, and this messes up 'configure' when it tests for the cleanup
attribute.  Work around the problem by using __has_attribute directly.
Problem reported by Joakim Jalap (Bug#22385).
* configure.ac: Don’t use AX_GCC_VAR_ATTRIBUTE.
* m4/ax_gcc_var_attribute.m4: Remove.
* src/conf_post.h (__has_attribute): Provide a substitute, for
non-GCC or older GCC compilers.  All uses changed to assume
the substitute.  Check for the cleanup attribute.
* src/emacs-module.c (module_has_cleanup): Just use __has_attribute.

10 years agoPrefer GnuTLS when acquiring random seed
Paul Eggert [Sun, 17 Jan 2016 20:12:08 +0000 (12:12 -0800)]
Prefer GnuTLS when acquiring random seed

This attempts to improve on the fix for Bug#22202.
* configure.ac (HAVE_DEV_URANDOM): Remove.
Check /dev/urandom existence at run time, not at build time,
since the device could exist in the former but not the latter.
* src/sysdep.c [HAVE_GNUTLS]: Include gnutls/gnutls.h.
(gnutls_rnd) [GNUTLS_VERSION_NUMBER < 0x020c00]: New fallback macro.
(random_seed): New typedef.
(set_random_seed): New static function.
(seed_random): Use them.
(init_random): Use random_seed instead of uintmax_t, so as to
not consume more entropy than needed.  Prefer gnutls_rnd if it
works; this avoids a redundant open of /dev/urandom on
GNU/Linux with modern GnuTLS.

10 years ago; Auto-commit of ChangeLog files.
Glenn Morris [Sun, 17 Jan 2016 11:23:45 +0000 (06:23 -0500)]
; Auto-commit of ChangeLog files.

10 years ago* lisp/emacs-lisp/syntax.el (syntax-ppss-table): New var
Stefan Monnier [Sat, 16 Jan 2016 20:06:04 +0000 (15:06 -0500)]
* lisp/emacs-lisp/syntax.el (syntax-ppss-table): New var

(syntax-ppss):
* lisp/font-lock.el (font-lock-fontify-syntactically-region): Use it.

10 years agolisp/nxml: Use syntax-tables for comments
Stefan Monnier [Sat, 16 Jan 2016 20:03:42 +0000 (15:03 -0500)]
lisp/nxml: Use syntax-tables for comments

* lisp/nxml/nxml-mode.el (nxml-set-face): Prepend.
(nxml-mode): Set syntax-ppss-table.
Use sgml-syntax-propertize-function for syntax-propertize-function.
Let font-lock highlight strings and comments.
(nxml-degrade): Don't touch "nxml-inside" property any more.
(nxml-after-change, nxml-after-change1): Remove functions.
(comment): Don't set fontify rule any more.
(nxml-fontify-attribute): Don't highlight the value any more.
(nxml-namespace-attribute-value-delimiter, nxml-namespace-attribute-value)
(nxml-comment-delimiter, nxml-comment-content): Remove faces.

* lisp/nxml/nxml-rap.el (nxml-scan-end): Remove.
(nxml-get-inside, nxml-inside-start, nxml-inside-end): Use syntax-ppss.
(nxml-clear-inside, nxml-set-inside): Remove.
(nxml-scan-after-change): Remove function.
(nxml-scan-prolog, nxml-tokenize-forward): Simplify.
(nxml-ensure-scan-up-to-date): Use syntax-propertize.
(nxml-move-outside-backwards):
* lisp/nxml/nxml-outln.el (nxml-section-tag-backward): Adjust to new
nxml-inside-start behavior.

* lisp/nxml/nxml-util.el (nxml-debug-set-inside)
(nxml-debug-clear-inside): Remove macros.

* lisp/nxml/xmltok.el (xmltok-forward-special): Remove function.
(xmltok-scan-after-comment-open): Simplify.

10 years ago* elisp-mode.el (elisp--font-lock-flush-elisp-buffers): Fix comment
Stefan Monnier [Sat, 16 Jan 2016 19:11:11 +0000 (14:11 -0500)]
* elisp-mode.el (elisp--font-lock-flush-elisp-buffers): Fix comment

10 years ago* lisp/nxml: Use standard completion; it also works for company-mode
Stefan Monnier [Sat, 16 Jan 2016 19:03:29 +0000 (14:03 -0500)]
* lisp/nxml: Use standard completion; it also works for company-mode

* lisp/nxml/nxml-mode.el (nxml-complete): Obsolete.
(nxml-completion-at-point-function): Remove.
(nxml-mode): Don't set completion-at-point-functions.
* lisp/nxml/rng-nxml.el (rng-nxml-mode-init): Set it here instead.
(rng-completion-at-point): Rename from rng-complete and mark it
non-interactive.  It is now to be used as completion-at-point-function.
(rng-complete-tag, rng-complete-end-tag, rng-complete-attribute-name)
(rng-complete-attribute-value): Don't perform completion, but return
completion data instead.
(rng-complete-qname-function, rng-generate-qname-list): Add a few
arguments, previously passed via dynamic coping.
(rng-strings-to-completion-table): Rename from
rng-strings-to-completion-alist.  Don't return an alist.  Don't both
sorting and uniquifying.

* lisp/nxml/rng-util.el (rng-complete-before-point): Delete function.
(rng-completion-exact-p, rng-quote-string): Delete functions.

* lisp/nxml/rng-valid.el (rng-recover-start-tag-open)
(rng-missing-attributes-message, rng-missing-element-message)
(rng-mark-missing-end-tags): Use explicit ".." in formats rather than
calling rng-quote-string everywhere.

10 years agoUse sgml-electric-tag-pair-mode also in nxml-mode
Stefan Monnier [Sat, 16 Jan 2016 15:43:19 +0000 (10:43 -0500)]
Use sgml-electric-tag-pair-mode also in nxml-mode

* lisp/nxml/rng-nxml.el: Require sgml-mode.
(rng-nxml-easy-menu): Add entry for sgml-electric-tag-pair-mode.
(rng-complete-qname-function): Use complete-with-action.

* lisp/textmodes/sgml-mode.el (sgml-electric-tag-pair-before-change-function):
Let-bind forward-sexp-function, since nxml-mode binds it to
something incompatible.

* lisp/nxml/nxml-mode.el: Use setq-local and defvar-local.

10 years ago; * etc/NEWS: The final touch.
Eli Zaretskii [Sat, 16 Jan 2016 15:36:21 +0000 (17:36 +0200)]
; * etc/NEWS: The final touch.

10 years agoImprove documentation of dynamic modules
Eli Zaretskii [Sat, 16 Jan 2016 15:30:11 +0000 (17:30 +0200)]
Improve documentation of dynamic modules

* doc/lispref/loading.texi (How Programs Do Loading): Update the
description of searching for files in 'load' when Emacs was built
with support for dynamic modules.

10 years ago* INSTALL: Document --with-modules.
Eli Zaretskii [Sat, 16 Jan 2016 15:20:34 +0000 (17:20 +0200)]
* INSTALL: Document --with-modules.

10 years agoDocument 'function-put'
Eli Zaretskii [Sat, 16 Jan 2016 15:13:16 +0000 (17:13 +0200)]
Document 'function-put'

* doc/lispref/symbols.texi (Symbol Plists): Document
'function-put'.  Update documentation of 'function-get'.

10 years agoDocument 'funcall-interactively'
Eli Zaretskii [Sat, 16 Jan 2016 14:54:35 +0000 (16:54 +0200)]
Document 'funcall-interactively'

* doc/lispref/commands.texi (Interactive Call): Document
'funcall-interactively'.
* doc/lispref/functions.texi (Calling Functions): Mention
'funcall-interactively' and provide a cross-reference.

10 years ago* doc/lispref/lists.texi (Association Lists): Document 'alist-get'.
Eli Zaretskii [Sat, 16 Jan 2016 14:32:05 +0000 (16:32 +0200)]
* doc/lispref/lists.texi (Association Lists): Document 'alist-get'.

10 years ago* doc/lispref/strings.texi (Text Comparison): Document 'string-greaterp'.
Eli Zaretskii [Sat, 16 Jan 2016 14:03:03 +0000 (16:03 +0200)]
* doc/lispref/strings.texi (Text Comparison): Document 'string-greaterp'.

10 years agoDocument renaming of selection-related functions
Eli Zaretskii [Sat, 16 Jan 2016 13:56:50 +0000 (15:56 +0200)]
Document renaming of selection-related functions

* doc/lispref/frames.texi (Window System Selections): Rename "x-*"
functions into the corresponding "gui-*" functions.  Make the
description slightly less X-centric.

10 years ago* doc/lispref/macros.texi (Expansion): Document 'macroexpand-1'.
Eli Zaretskii [Sat, 16 Jan 2016 13:40:58 +0000 (15:40 +0200)]
* doc/lispref/macros.texi (Expansion): Document 'macroexpand-1'.

10 years agoDocument 'define-inline'
Eli Zaretskii [Sat, 16 Jan 2016 13:30:47 +0000 (15:30 +0200)]
Document 'define-inline'

* doc/lispref/functions.texi (Defining Functions): Document
'define-inline' and related macros.

* lisp/emacs-lisp/inline.el (inline-letevals): Doc fix.

10 years ago; Auto-commit of loaddefs files.
Glenn Morris [Sat, 16 Jan 2016 12:18:13 +0000 (07:18 -0500)]
; Auto-commit of loaddefs files.

10 years ago; * etc/NEWS: Mark entries that don't need further treatment.
Eli Zaretskii [Sat, 16 Jan 2016 12:04:23 +0000 (14:04 +0200)]
; * etc/NEWS: Mark entries that don't need further treatment.

10 years ago* lisp/files.el (dir-locals--all-files): Respect absolute file-names
Artur Malabarba [Sat, 16 Jan 2016 09:21:27 +0000 (09:21 +0000)]
* lisp/files.el (dir-locals--all-files): Respect absolute file-names

10 years ago* lisp/help-fns.el (describe-variable): Fix a left-over parenthesis
Artur Malabarba [Sat, 16 Jan 2016 09:18:13 +0000 (09:18 +0000)]
* lisp/help-fns.el (describe-variable): Fix a left-over parenthesis

10 years ago* lisp/dired-x.el (dired-omit-here-always): Use add-dir-local-variable
Artur Malabarba [Sat, 16 Jan 2016 08:52:14 +0000 (08:52 +0000)]
* lisp/dired-x.el (dired-omit-here-always): Use add-dir-local-variable

instead of manually writing a dir-locals file.

10 years ago* lisp/files.el (dir-locals--all-files): Use completion instead of wildcards
Artur Malabarba [Sat, 16 Jan 2016 08:50:46 +0000 (08:50 +0000)]
* lisp/files.el (dir-locals--all-files): Use completion instead of wildcards

(dir-locals-file)
* lisp/files-x.el (modify-dir-local-variable)
* lisp/dos-fns.el (dosified-file-name)
* lisp/help-fns.el (describe-variable): Change accordingly.

10 years agoFix incompatbilities with MS-Windows 2000 and older
Jussi Lahdenniemi [Sat, 16 Jan 2016 09:46:14 +0000 (11:46 +0200)]
Fix incompatbilities with MS-Windows 2000 and older

* src/w32.c <multiByteToWideCharFlags>: New global variable.
(filename_to_utf16, filename_from_ansi, check_windows_init_file):
Use it instead of the literal MB_ERR_INVALID_CHARS.
(maybe_load_unicows_dll): Initialize multiByteToWideCharFlags as
appropriate for the underlying OS version.  For details, see
http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00835.html.
* src/w32.h: Declare multiByteToWideCharFlags.
* src/w32fns.c (Fx_file_dialog, Fw32_shell_execute)
(add_tray_notification): Use multiByteToWideCharFlags instead of
the literal MB_ERR_INVALID_CHARS.
(_resetstkoflw_proc): New typedef.
(w32_reset_stack_overflow_guard): Call _resetstkoflw via a
pointer, as this function is absent in msvcrt.dll shipped with W2K
and older systems.

Copyright-paperwork-exempt: yes

10 years agoMention in PROBLEMS an issue with MS-Windows NT4
Eli Zaretskii [Sat, 16 Jan 2016 09:23:42 +0000 (11:23 +0200)]
Mention in PROBLEMS an issue with MS-Windows NT4

* etc/PROBLEMS (MS-Windows): Mention the problem with Shell32.dll
on Windows NT4.  For the details, see
http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00835.html.

10 years agoEnsure 8-byte aligned memory allocation on MS-Windows 9X
Jussi Lahdenniemi [Sat, 16 Jan 2016 09:11:12 +0000 (11:11 +0200)]
Ensure 8-byte aligned memory allocation on MS-Windows 9X

* src/w32heap.c (init_heap): Redirect malloc, realloc, and free to
special functions on Windows 9X.  Refuse to dump Emacs on Windows 9X.
(malloc_after_dump_9x, realloc_after_dump_9x)
(free_after_dump_9x): New functions.  (Bug#22379)  See also
http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00852.html
for more details about the original problem.

* nt/inc/ms-w32.h (malloc_after_dump_9x, realloc_after_dump_9x)
(free_after_dump_9x): Add prototypes.

Copyright-paperwork-exempt: yes

10 years agoFix tests for active region in hideif.el
Eli Zaretskii [Sat, 16 Jan 2016 07:55:00 +0000 (09:55 +0200)]
Fix tests for active region in hideif.el

* lisp/progmodes/hideif.el (hif-evaluate-macro, hide-ifdef-block): Use
'use-region-p' to test whether to operate on region, instead of
testing 'mark-active'.

10 years agoFix interactive specs in some hideif.el commands
Eli Zaretskii [Sat, 16 Jan 2016 07:40:12 +0000 (09:40 +0200)]
Fix interactive specs in some hideif.el commands

* lisp/progmodes/hideif.el (hif-evaluate-macro)
(hide-ifdef-undef, show-ifdef-block): Don't use '(interactive "r")'
in commands that should only act on the region if it's active.

10 years agoMerge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25
Phillip Lord [Fri, 15 Jan 2016 22:20:34 +0000 (22:20 +0000)]
Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25

10 years agoEnable test selector from command line
Phillip Lord [Fri, 15 Jan 2016 22:11:39 +0000 (22:11 +0000)]
Enable test selector from command line

* test/automated/Makefile.in: Change variable manipulation to avoid
  over-writing selector.

10 years ago* xmltok.el: Mark the "sole --" rather than the comment opener
Stefan Monnier [Fri, 15 Jan 2016 21:59:21 +0000 (16:59 -0500)]
* xmltok.el: Mark the "sole --" rather than the comment opener

* lisp/nxml/xmltok.el (xmltok-scan-after-comment-open): Put the error
marker on the "sole --" rather than on the comment opener.

10 years agoDon't confuse "::" with ":" when trying to parse member initializers.
Alan Mackenzie [Fri, 15 Jan 2016 21:15:20 +0000 (21:15 +0000)]
Don't confuse "::" with ":" when trying to parse member initializers.

* lisp/progmodes/cc-engine.el (c-back-over-member-initializers): Check
more robustly for ":" token when searching backwards for it.

* lisp/progmodes/cc-langs (c-:$-multichar-token-regexp): New language
variable.

10 years agoreplace `tramp-compat-split-string' (removed) with `split-string'
Sam Steingold [Fri, 15 Jan 2016 16:53:05 +0000 (11:53 -0500)]
replace `tramp-compat-split-string' (removed) with `split-string'

(python-shell-tramp-refresh-process-environment)
(python-shell-calculate-pythonpath): use `split-string'
instead of defunct `tramp-compat-split-string'

10 years agoEnsure positive number of glyphs for margins of positive width
Eli Zaretskii [Fri, 15 Jan 2016 15:36:47 +0000 (17:36 +0200)]
Ensure positive number of glyphs for margins of positive width

* src/dispnew.c (margin_glyphs_to_reserve): Always return a
positive value when a non-zero width of the marginal area was
requested.  (Bug#22356)

10 years agoUpdate nXML to use Emacs's Unicode support, and lexical-binding
Stefan Monnier [Fri, 15 Jan 2016 15:29:20 +0000 (10:29 -0500)]
Update nXML to use Emacs's Unicode support, and lexical-binding

* etc/nxml/*.el: Remove obsolete char-name files.
* lisp/nxml/xsd-regexp.el (xsdre-range-list-difference): Remove unused
var `next'.
* lisp/nxml/rng-nxml.el (rng-set-state-after): Don't assume point-min==1.
* lisp/nxml/rng-match.el (rng-update-match-state): Simplify.
* lisp/nxml/nxml-outln.el (nxml-outline-state-transform-exceptions)
(nxml-target-section-pos, nxml-depth-in-target-section)
(nxml-outline-state-transform-alist)
(nxml-outline-display-section-tag-function): Move decl before first use.
* lisp/nxml/nxml-mode.el (nxml-char-name-ignore-case)
(nxml-char-name-alist, nxml-char-name-table)
(nxml-autoload-char-name-set-list, nxml-named-char-history): Remove vars.
(nxml-enable-char-name-set, nxml-disable-char-name-set)
(nxml-char-name-set-enabled-p, nxml-autoload-char-name-set)
(nxml-define-char-name-set, nxml-get-char-name): Remove functions.
(nxml-insert-named-char): Use read-char-by-name instead.
(nxml-char-ref-display-extra): Use get-char-code-property.
* lisp/nxml/nxml-maint.el (nxml-create-unicode-char-name-sets):
Remove function.
* lisp/nxml/nxml-glyph.el, lisp/nxml/nxml-uchnm.el: Remove files.

10 years agoFix crashes when mini-window has non-zero margins
Eli Zaretskii [Fri, 15 Jan 2016 15:07:38 +0000 (17:07 +0200)]
Fix crashes when mini-window has non-zero margins

* src/window.c (resize_frame_windows): Use 'new_size' to set
minibuffer window's 'total_cols' value, as 'size' might be in
pixels.  (Bug#22356)

10 years agoIn comment-dwim with style `extra-line', respect indent-tabs-mode.
Alan Mackenzie [Fri, 15 Jan 2016 12:32:32 +0000 (12:32 +0000)]
In comment-dwim with style `extra-line', respect indent-tabs-mode.

This fixes bug #22369.

* lisp/newcomment.el (comment-make-bol-ws): New function.
(comment-make-extra-lines): Use new function instead of a crude `make-string'.

10 years agoAdd "sg" method to Tramp
Michael Albinus [Fri, 15 Jan 2016 10:10:37 +0000 (11:10 +0100)]
Add "sg" method to Tramp

* doc/misc/tramp.texi (Inline methods): Add "sg" method.
(Customizing Completion): Add function `tramp-parse-etc-group'.

* lisp/net/tramp-sh.el (tramp-methods) <sg>: Add.  (Bug#22329)
(tramp-completion-function-alist-sg): New defconst.
(top): Completion function for "sg" is
`tramp-completion-function-alist-sg'.

* lisp/net/tramp.el (tramp-completion-function-alist): Adapt docstring.
(tramp-parse-etc-group, tramp-parse-etc-group-group): New defuns.

10 years agoMake 'random' seeds cryptographically secure if possible
Eli Zaretskii [Fri, 15 Jan 2016 09:47:55 +0000 (11:47 +0200)]
Make 'random' seeds cryptographically secure if possible

* configure.ac: Check for "/dev/urandom".

* src/sysdep.c (init_random) [HAVE_DEV_URANDOM]: Read the stream
for the seed from "/dev/urandom".
[WINDOWSNT]: Obtain the stream for the seed from w32 APIs.
* src/fns.c (Frandom): Update the doc string to indicate that
system entropy is used when available.
* src/w32.c: Include wincrypt.h.
(w32_init_crypt_random, w32_init_random): New functions, use the
CryptGenRandom API.
(globals_of_w32): Initialize w32_crypto_hprov handle to zero.
* src/w32.h (w32_init_random): Add prototype.

* doc/lispref/numbers.texi (Random Numbers): Document more details
about 't' as the argument to 'random'.

* etc/NEWS: Mention that '(random t)' now uses a cryptographically
strong seed if possible.

(Bug#22202)

10 years agoUnhide the --no-line-directive option to 'etags'
Eli Zaretskii [Fri, 15 Jan 2016 08:54:03 +0000 (10:54 +0200)]
Unhide the --no-line-directive option to 'etags'

* lib-src/etags.c (print_help): Un-undocument the --no-line-directive
option.  (Bug#22306)

* doc/man/etags.1: Document the --no-line-directive option.

10 years agoFix picture-mode wrt double-width characters
Alan J Third [Fri, 15 Jan 2016 08:26:10 +0000 (10:26 +0200)]
Fix picture-mode wrt double-width characters

* lisp/textmodes/picture.el (picture-insert): Check the width of
the character being replaced, not just that of the replacement.
(Bug#1808)

Copyright-paperwork-exempt: yes

10 years ago; * etc/NEWS: Remove unneeded text.
Eli Zaretskii [Fri, 15 Jan 2016 08:14:30 +0000 (10:14 +0200)]
; * etc/NEWS: Remove unneeded text.

10 years agoHonor docstring of gnus-group-get-new-news
Eric Abrahamsen [Fri, 15 Jan 2016 05:00:40 +0000 (05:00 +0000)]
Honor docstring of gnus-group-get-new-news

* lisp/gnus/gnus-start.el (gnus-get-unread-articles): If the prefix arg is t,
but non-numeric, unconditionally consider all groups to need updating.

10 years agoDisallow parenthesis in non-pseudo CSS selectors
Simen Heggestøyl [Thu, 14 Jan 2016 18:24:03 +0000 (19:24 +0100)]
Disallow parenthesis in non-pseudo CSS selectors

* lisp/textmodes/css-mode.el (css--font-lock-keywords): Disallow
parenthesis in selectors except for in the function notation that
might appear right after a pseudo-class.
* test/indent/scss-mode.scss: Add a test for it.